Systems for unlocking automobile doors and trunks include conventional keys, coded keypads on the automobile itself and lock systems which employ remote transmission, as for example from a key chain fob. While conventional keys and coded keypads may provide high security, many drivers today prefer to use fobs for their greater convenience. Such fobs generally include one or more pushbutton keys that, when pressed, cause the fob to emit a coded transmission including both an identification code for the particular fob and information to authorize the execution of a particular action, e.g. unlocking the automobile door. A control module on the automobile at which the fob is pointed picks up the coded transmission and decodes it. Such a control module constitutes, or is part of, the general electronic module (GEM) controlling the electrical system of the automobile and powered by the standard automobile battery. If the identification code in the transmission identifies the fob as one assigned to that automobile, the control module causes the electrical system of the automobile to execute the indicated action. As a result, the driver of the automobile can unlock the door as he or she approaches the automobile. Such lock systems are called keyless remote entry systems.
However, such lock systems which employ such remote transmissions are subject to security tampering because the surveillance and recording of the transmissions may also be carried out remotely, for example from another vehicle, without attracting any attention. Therefore, without any additional security measures, it would be possible for a thief to identify a desirable automobile, such as in a reserved workplace parking space which commonly contains more expensive cars, and then wait in a nearby automobile to record the fob transmission. The recorded fob transmission could then be used by the thief the next day, when the target automobile is again parked in the reserved space, to unlock the target automobile's door.
One solution to this problem is to require synchronization between the fob and the control module, that is, to change the coded transmission by a particular method with each transmission and then to have the control module permit the execution of the action only if a currently received transmission is determined to have changed from a previously received, authorized transmission in accordance with that particular method. This can prevent the thief from reusing a recorded transmission, since it would not have been appropriately changed. If the synchronization change and/or the code upon which it is based is made sufficiently complex, this method also can effectively prevent a thief from unlocking the door by simply broadcasting huge volumes of random numbers in the hope of accidentally hitting on the right number.
Many different systems for synchronization are known. All such systems must meet a number of restraints other than providing security. These include cost and convenience criteria, which limit the complexity and size of the codes being processed to those that can be handled by relatively low-cost processors. Another restraint is that the entire processing must require less than one second in order to be acceptable to the consumer. Still another restraint is imposed by a maximum size and weight of the fob, which can limit the size and sophistication of the processor.
In addition, it is common for more than one fob to be assigned or mated to each automobile, so that more than one driver can have his own. Generally four fobs are mated, although of course other numbers are possible. The synchronization system must accommodate use by any or all of the mated fobs from time to time.
However, an important restraint is that the holder of a mated fob not be locked out, or in other words it is important for customer satisfaction that the synchronization system not lose synchronization easily. While ways are known to provide for secure resynchronization by the owner of a mated fob, such as by depressing a combination of buttons on the fob, it is still highly undesirable for the sake of customer satisfaction to have to perform this process often. Moreover, without resynchronization, the fob would be permanently inoperative.
One method of synchronization uses a rolling count, also called a rolling code, contained in each transmission. With each button push, the rolling count is incremented. In order for a current transmission to be determined to authorize action, the rolling count must be greater than the rolling count of the previously received transmission. In such case, a recorded transmission from a thief, having a rolling count no greater than the most recent previous transmission, would be rejected. This method then requires that at least the rolling count from the previous valid transmission be recorded in the control module, for example in an EEPROM (electrically eraseable programmable read only memory) provided in the control module. An EEPROM is an example of a non-volatile memory, and it should hold the rolling count even if there is a loss of power. However, should this recorded rolling count become corrupted or inaccessible, either at the time it is written or thereafter, the comparison of the received rolling count and the recorded rolling count will not be successful, and the fob will again become inoperative.